[BLKTAP][XEND] Fix blktap to work with a bootloader
authorAndrew Warfield <andy@xensource.com>
Thu, 28 Sep 2006 19:12:59 +0000 (12:12 -0700)
committerAndrew Warfield <andy@xensource.com>
Thu, 28 Sep 2006 19:12:59 +0000 (12:12 -0700)
If a Xen guest has a bootloader configured, then it will fail to start
on a blktap image.  The problem is blkdev_uname_to_file, which cannot
parse the "tap:aio:$filename" image strings: it tries to split the
string apart at ":" and assign the result to a 2-tuple, and this
results in a python error if the split results in three or more
strings.

The fix is to split only at the first ":", and then to split again
if we detect "tap:" as the image type.

Signed-off-by: Stephen Tweedie <sct@redhat.com>
tools/python/xen/util/blkif.py

index dd4f28700400bb2cfc788511bd37bf8cb2c086b3..c9a9dc9e6abc93fd4e9473fc5e7739c6bebf2677 100644 (file)
@@ -67,6 +67,8 @@ def blkdev_uname_to_file(uname):
         (typ, fn) = uname.split(":")
         if typ == "phy" and not fn.startswith("/"):
             fn = "/dev/%s" %(fn,)
+        if typ == "tap":
+            (typ, fn) = fn.split(":", 1)
     return fn
 
 def mount_mode(name):